package com.alks.function.service;

import com.alks.entity.data.entity.*;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.request.operate.material.*;
import com.alks.function.data.request.operate.materialIn.MtlBIStorageReq;
import com.alks.function.data.request.stock.InventoryLocFil;
import com.alks.function.data.request.stock.PcMtlStockRequest;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;


public interface PcMtlStockService extends IService<PcMtlStock> {
    ResponseInfo pcMtlStockList(PcMtlStockRequest request);

    ResponseInfo pcMtlStockInOutList(String mtlNo);

    ResponseInfo pcMtlStockCondition();

    ResponseInfo wareHouseList(InventoryLocFil request);

    ResponseInfo insertHouse(InventoryLocFil request);

    ResponseInfo mtlBIStorageList(MtlBIStorageReq req);

    ResponseInfo deleteBIStorage(MtlBIStorageRep req);

    ResponseInfo chooseMtlInList(MaterialOtherChoReq req);

    ResponseInfo insertMtlInList(List<SdMtlNewKfRep> list);

    ResponseInfo mtlOtherList();

    ResponseInfo deleteByTemp();

    ResponseInfo mtlDetailList(MaterialOtherDetailReq req);

    ResponseInfo cOtherDetailList(CreMtlOtherDetailReq req);

    ResponseInfo dOtherDetail(SdMtlOtherTempDetailRep req);

    ResponseInfo deleteHouse(InventoryLocFil request);

    ResponseInfo outMtlList(Integer pageNum, Integer pageSize);

    ResponseInfo chooseMtlOtherList(MaterialOtherChoReq req);

    ResponseInfo otherMtlOuts(List<PcMtlOtherOut2Rep> req);

    ResponseInfo otherMtlDetailList();

    ResponseInfo creOtherMtlSlip(OtherMtlDetailOutListReq req);

    ResponseInfo otherDetails(MtlOther2Req req);

    ResponseInfo deleteByOtherDetail(MtlOtherDetailOut1Rep rep);

    void downloadMtlSto(HttpServletResponse response, PcMtlStockRequest request) throws IOException;

    ResponseInfo scanInPcMtlIn(String slipNo);

    ResponseInfo getScanInSlipTemp();

    ResponseInfo deleteSlipInTemp();

    ResponseInfo genericSlipNo(List<ScanTheDocumentInformation> list);

    ResponseInfo printPcMtlIn(List<String> sendNos);

    ResponseInfo scanSlipByLotNo(String lotNo);

    ResponseInfo getScanSlipByLotNo();

    ResponseInfo createOutSlipNo(List<ScanOutDetail> list);
}
